﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model.Admin;

namespace Model.RepositoryInterfaces
{
    public interface IApartmentRepository
    {
        void Create(Apartment entity);

        ApartmentDetailsViewModel Read(int id);

        void Update(Apartment apartment);

        Apartment ReadAdmin(int id);

        IList<ApartmentViewModel> Search(int floorId, int roomsNumberId, int areaId, int priceId);

        IList<ApartmentViewModel> SearchByKeyword(string keyword);

        IList<ApartmentByFloorViewModel> GetBasicInfoByFloor(int floorId);
        
        IList<ApartmentListViewModel> ReadAll();

        IList<ApartmentListViewModel> ReadByCode(string code);

        IList<ApartmentListViewModel> ReadByModel(string model);

        IList<RoomViewModel> ReadRooms(int id);

        void Delete(int id);

        void AddRoom(int id, Room room);

        void UpdateRoom(int apartmentId, int roomId, RoomCrudViewModel viewModel);

        void DeleteRoom(int apartmentId, int roomId);

        Room ReadRoom(int id);


        void GenerateRoomsByModel(int apartmentId);
    }
}
